home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / flight-of-the-museum.swf / scripts / Main.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  9.6 KB  |  333 lines

  1. package
  2. {
  3.    import com.google.analytics.AnalyticsTracker;
  4.    import com.google.analytics.GATracker;
  5.    import copy.CopyBank;
  6.    import engine.Engine;
  7.    import flash.display.MovieClip;
  8.    import flash.events.Event;
  9.    import flash.media.Sound;
  10.    import flash.media.SoundChannel;
  11.    import flash.media.SoundTransform;
  12.    import flash.system.Security;
  13.    import ui.MainUI;
  14.    
  15.    public class Main extends MovieClip
  16.    {
  17.       
  18.       private static var _instance:Main;
  19.        
  20.       
  21.       private var _missionMusic:Sound;
  22.       
  23.       private var _menuFadeTarget:Number = 1;
  24.       
  25.       private var _propeller:Sound;
  26.       
  27.       private var _missionMusicChannel:SoundChannel;
  28.       
  29.       private var _soundOn:Boolean = true;
  30.       
  31.       public var _mainUI:MainUI;
  32.       
  33.       public var _api:Object;
  34.       
  35.       private var _missionFade:Number = 1;
  36.       
  37.       private var _engine:Engine;
  38.       
  39.       private var _missionMusicTransform:SoundTransform;
  40.       
  41.       private var _menuMusicChannel:SoundChannel;
  42.       
  43.       private var _propChannel:SoundChannel;
  44.       
  45.       private var _menuMusic:Sound;
  46.       
  47.       private var _propTransform:SoundTransform;
  48.       
  49.       private var _menuMusicTransform:SoundTransform;
  50.       
  51.       private var _soundVolume:Number = 1;
  52.       
  53.       private var _missionFadeTarget:Number = 1;
  54.       
  55.       private var _pausePoint:Number = 0;
  56.       
  57.       private var _menuFade:Number = 1;
  58.       
  59.       private var _tracker:AnalyticsTracker;
  60.       
  61.       public function Main()
  62.       {
  63.          var copyBank:* = undefined;
  64.          _soundOn = true;
  65.          _pausePoint = 0;
  66.          _menuMusicChannel = new SoundChannel();
  67.          _menuMusicTransform = new SoundTransform(1);
  68.          _menuFade = 1;
  69.          _menuFadeTarget = 1;
  70.          _missionMusicChannel = new SoundChannel();
  71.          _missionMusicTransform = new SoundTransform(1);
  72.          _missionFade = 1;
  73.          _missionFadeTarget = 1;
  74.          _propChannel = new SoundChannel();
  75.          _propTransform = new SoundTransform(1);
  76.          _soundVolume = 1;
  77.          super();
  78.          _instance = this;
  79.          copyBank = new CopyBank();
  80.          _mainUI.initCopy();
  81.          _engine = new Engine();
  82.          addChild(_engine);
  83.          _engine.cacheBitmaps();
  84.          _engine.initCopy();
  85.          _engine.visible = false;
  86.          addEventListener("enterFrame",onMainEnterFrame);
  87.          addEventListener(Event.ADDED_TO_STAGE,onAddedToStage);
  88.          this.loaderInfo.addEventListener(Event.COMPLETE,initHandler);
  89.          Security.allowDomain("bin.clearspring.com");
  90.          Security.allowDomain("widgets.clearspring.com");
  91.          setMenuMusic();
  92.       }
  93.       
  94.       public static function get Instance() : Main
  95.       {
  96.          return _instance;
  97.       }
  98.       
  99.       private function initHandler(event:*) : *
  100.       {
  101.          var rootObj:* = undefined;
  102.          rootObj = this.root.loaderInfo.loader.root;
  103.          _api = rootObj._api;
  104.          if(!_tracker)
  105.          {
  106.             _tracker = new GATracker(this,"UA-6368558-9","AS3",true);
  107.          }
  108.          Tracker.trackPageview("NATM2_Flight/game/index");
  109.          Tracker.trackEvent("NATM2_Flight","load","loadIndex",String(rootObj._loadTime));
  110.       }
  111.       
  112.       public function toggleSound(graphic:*) : *
  113.       {
  114.          trace("TOGGLE SOUND");
  115.          _soundOn = !_soundOn;
  116.          if(_soundOn)
  117.          {
  118.             Main.Instance.Tracker.trackEvent("NATM2_Flight","soundToggle","on");
  119.             _soundVolume = 1;
  120.          }
  121.          else
  122.          {
  123.             Main.Instance.Tracker.trackEvent("NATM2_Flight","soundToggle","off");
  124.             _soundVolume = 0;
  125.          }
  126.          _missionMusicTransform.volume = _soundVolume;
  127.          _menuMusicTransform.volume = _soundVolume;
  128.          _propTransform.volume = _soundVolume;
  129.          _missionMusicChannel.soundTransform = _missionMusicTransform;
  130.          _menuMusicChannel.soundTransform = _menuMusicTransform;
  131.          _propChannel.soundTransform = _propTransform;
  132.          _engine.updateSoundDisplay();
  133.          _mainUI.updateSoundDisplay();
  134.       }
  135.       
  136.       public function viewScores() : *
  137.       {
  138.          endGame();
  139.          _mainUI.goToScores();
  140.       }
  141.       
  142.       public function get Tracker() : *
  143.       {
  144.          return _tracker;
  145.       }
  146.       
  147.       public function visitSite() : *
  148.       {
  149.          trace("VISIT SITE");
  150.       }
  151.       
  152.       public function get SoundOn() : Boolean
  153.       {
  154.          return _soundOn;
  155.       }
  156.       
  157.       public function playSound(ref:String) : *
  158.       {
  159.          var snd:Sound = null;
  160.          var rNum:Number = NaN;
  161.          if(_soundOn)
  162.          {
  163.             switch(ref)
  164.             {
  165.                case "pickup":
  166.                   snd = new snd_Pickup();
  167.                   break;
  168.                case "ink":
  169.                   snd = new snd_Ink2();
  170.                   break;
  171.                case "success":
  172.                   snd = new snd_Success();
  173.                   break;
  174.                case "hit":
  175.                   rNum = Math.random();
  176.                   if(rNum < 0.33)
  177.                   {
  178.                      snd = new snd_Hit1();
  179.                   }
  180.                   if(rNum >= 0.33 && rNum < 0.66)
  181.                   {
  182.                      snd = new snd_Hit2();
  183.                   }
  184.                   if(rNum >= 0.66)
  185.                   {
  186.                      snd = new snd_Hit3();
  187.                   }
  188.                   break;
  189.                case "throw":
  190.                   snd = new snd_Swish2();
  191.                   break;
  192.                case "hitGround":
  193.                   snd = new snd_GroundBang();
  194.                   break;
  195.                case "hitRing":
  196.                   snd = new snd_HitRing();
  197.                   break;
  198.                case "keyGround":
  199.                   snd = new snd_Key2();
  200.                   break;
  201.                case "keyCage":
  202.                   snd = new snd_Pickup();
  203.                   break;
  204.                case "rocket":
  205.                   snd = new snd_Rocket();
  206.                   break;
  207.                case "capone":
  208.                   snd = new snd_Capone();
  209.                   break;
  210.                case "mission":
  211.                   snd = new snd_Mission();
  212.                   break;
  213.                default:
  214.                   trace("### REQUESTED SOUND NOT FOUND");
  215.             }
  216.             snd.play();
  217.          }
  218.       }
  219.       
  220.       public function endGame() : *
  221.       {
  222.          trace("END GAME");
  223.          setMenuMusic();
  224.          _engine.endGame();
  225.          _mainUI.goToMain();
  226.          _mainUI.visible = true;
  227.          _engine.visible = false;
  228.       }
  229.       
  230.       public function shareGame() : *
  231.       {
  232.          _api.menu.show();
  233.       }
  234.       
  235.       public function setDeathPropeller() : *
  236.       {
  237.          _propChannel.stop();
  238.          _propeller = new snd_PropDeath();
  239.          _propChannel = _propeller.play(0,int.MAX_VALUE);
  240.          _propChannel.soundTransform = _propTransform;
  241.       }
  242.       
  243.       public function setMissionMusic() : *
  244.       {
  245.          if(!_missionMusic)
  246.          {
  247.             _missionMusic = new snd_MissionLoop();
  248.             _missionMusicChannel = _missionMusic.play(0,int.MAX_VALUE);
  249.          }
  250.          _missionMusicTransform.volume = _missionFade * _soundVolume;
  251.          _missionMusicChannel.soundTransform = _missionMusicTransform;
  252.          _missionFadeTarget = 1;
  253.          _menuFadeTarget = 0;
  254.       }
  255.       
  256.       public function loadDone(time:Number) : *
  257.       {
  258.          trace("loaded in: " + time + " seconds");
  259.       }
  260.       
  261.       public function startPropeller() : *
  262.       {
  263.          _propChannel.stop();
  264.          _propeller = new snd_Prop();
  265.          _propChannel = _propeller.play(0,int.MAX_VALUE);
  266.          _propChannel.soundTransform = _propTransform;
  267.       }
  268.       
  269.       private function onAddedToStage(event:*) : *
  270.       {
  271.          if(!_tracker)
  272.          {
  273.             _tracker = new GATracker(this,"UA-6368558-9","AS3",false);
  274.          }
  275.       }
  276.       
  277.       public function startGame() : *
  278.       {
  279.          _engine.initSceneMain();
  280.          _mainUI.visible = false;
  281.          _engine.startNewGame();
  282.          _engine.visible = true;
  283.       }
  284.       
  285.       public function viewTrailer() : *
  286.       {
  287.          trace("VIEW TRAILER");
  288.       }
  289.       
  290.       public function stopPropeller() : *
  291.       {
  292.          _propChannel.stop();
  293.       }
  294.       
  295.       public function setMenuMusic() : *
  296.       {
  297.          if(!_menuMusic)
  298.          {
  299.             _menuMusic = new snd_MenuLoop();
  300.             _menuMusicChannel = _menuMusic.play(0,int.MAX_VALUE);
  301.          }
  302.          _menuMusicTransform.volume = _menuFade * _soundVolume;
  303.          _menuMusicChannel.soundTransform = _menuMusicTransform;
  304.          _missionFadeTarget = 0;
  305.          _menuFadeTarget = 1;
  306.       }
  307.       
  308.       private function onMainEnterFrame(event:*) : *
  309.       {
  310.          if(_menuFade < _menuFadeTarget)
  311.          {
  312.             _menuFade += 0.02;
  313.          }
  314.          if(_menuFade > _menuFadeTarget)
  315.          {
  316.             _menuFade -= 0.02;
  317.          }
  318.          if(_missionFade < _missionFadeTarget)
  319.          {
  320.             _missionFade += 0.02;
  321.          }
  322.          if(_missionFade > _missionFadeTarget)
  323.          {
  324.             _missionFade -= 0.02;
  325.          }
  326.          _missionMusicTransform.volume = _missionFade * _soundVolume;
  327.          _menuMusicTransform.volume = _menuFade * _soundVolume;
  328.          _missionMusicChannel.soundTransform = _missionMusicTransform;
  329.          _menuMusicChannel.soundTransform = _menuMusicTransform;
  330.       }
  331.    }
  332. }
  333.